1. Field of the Invention
The present invention generally relates to computer software. More specifically, the present invention relates to a data-driven interface for managing materials.
2. Description of the Related Art
The term computer aided design (CAD) refers to a broad variety of computer-based tools used by architects, engineers, animators, video game designers, and other graphics and design professionals. CAD applications may be used to construct computer models or drawings representing virtually any imaginable two-dimensional (2D) or three-dimensional (3D) construct. Initially, such a construct is defined in part by the regions making up the surface of that construct. A rendering application may be used to add detail to the construct by mapping material texture maps onto various regions of the construct. Additionally, computer models can be static or animated, where time is a fourth dimension. For example, rendering a motion-blurred object is a four-dimensional (4D) rendering process. Computer models may also be implemented as computer simulations that use material texture maps.
Material texture maps, or materials, can be defined according to a variety of parameters, generally related to the type of material represented. For example, a glassy material may be defined in part by a reflectivity parameter, while a concrete material may be defined in part by a coarseness parameter. Materials used by rendering engines may be edited by changing some or all of these parameters in order to create new materials or modify existing ones. Users of various rendering engines may apply materials to multi-dimensional constructs in different ways according to their specific needs. For example, an architect may use a hardwood floor material as an indoor floor surface, and a grass material as an outdoor floor surface; alternatively, a video game designer may use either material for a variety of purposes, including animation and/or simulation, within a virtual environment. Either user views the materials available to their rendering engine using a conventional material browser.
Current user interfaces for materials are generally programmed manually by a computer programmer in C++ or other programming languages. To alleviate some of the inefficiency associated with programming each material user interface, software has been created such as QT Designer, or general-purpose user interface languages such as Microsoft XAML, that allow a user to interactively place interface elements for parameters of known materials. However, such systems are cumbersome because the interface for each material must still be created manually.
As the foregoing illustrates, there remains a need in the art for a flexible and extensible materials browser that overcomes one or more of the problems set forth above.